package q98_isValidBST;

import CommonClass.Common.TreeNode;

import java.util.ArrayList;
import java.util.List;

public class Solution_3 {

    /**
     * 还有一种比较繁琐的方法
     * 因为中序遍历二叉搜索树所获的的序列一定是有序的
     * 所以我们只要中序遍历后对数组进行判断即可
     */
    public boolean isValidBST(TreeNode root) {
        List<Integer> res = inorderTraversal(root);
        for (int i = 1; i < res.size(); i++) {
            if (res.get(i) <= res.get(i - 1)) {
                return false;
            }
        }
        return true;
    }

    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<Integer>();
        searchLeft(root, res);
        return res;
    }

    public void searchLeft(TreeNode root, List<Integer> res) {
        if (root == null) {
            return;
        }
        searchLeft(root.left, res);
        res.add(root.val);
        searchLeft(root.right, res);

    }
}
